
#ifndef INTERFACE_NET_RESPONSE_H_
#define INTERFACE_NET_RESPONSE_H_

#include "./stream.h"

namespace fasmio {

class INetResponse
{
public:
    virtual ~INetResponse() {}

public:
    enum ResponseCode
    {
        RC_SUCCESS = 0,
        RC_BAD_REQUEST,
        RC_SERVER_ERROR,
        // TODO: add more detailed response codes
    };

public:
    virtual ResponseCode GetResponseCode() = 0;
    virtual unsigned long GetContentLength() = 0;
    virtual IIStream* GetContent() = 0;
};

}  // namespace fasmio

#endif  // INTERFACE_NET_RESPONSE_H_

